# ‒ 定义一个类名为MyList，继承自list类，要求重写__init__()方法，使得初始化时可以接受一个列表作为参数，并将该列表中的元素添加到MyList中。
# ‒ 定义一个类名为MyDict，继承自dict类，要求重写__setitem__()方法，使得在向MyDict中添加元素时，如果该键已经存在，则将该键对应的值改为新值。
# ‒ 定义一个类名为MyInt，继承自int类，要求重写__add__()方法，使得在两个MyInt对象相加时返回两个对象的和再加上1。
# import math
# from functools import reduce
# class MyList(list):  # 继承list类
#     def __init__(self, *args):
#         super().__init__()  # 重写父类的init方法 - 先通过super()调用父类原有的init
#         for value in args:
#             self.append(value)  # 将值全部传到列表中去
#         self.check_value()  # - 检查输入值中是否有不是整数和小数的值
#     # 检查值
#     def check_value(self):
#         for x in self:
#             if type(x) not in (int, float):
#                 raise ValueError('列表中有非整数和小数的值')
#         else:
#             return self
#     def append(self, value):
#         if type(value) not in (int, float):
#             raise ValueError('不能添加非整数和小数的数')
#         else:
#             super().append(value)
#     @property
#     def average(self):
#         """求平均"""
#         return reduce(lambda x, y: x + y, self, 0) / len(self)
#     @property
#     def variance(self):
#         """总体方差"""
#         avg = self.average
#         num = reduce(lambda x, y: x + y, [(avg - i) ** 2 for i in self], 0)
#         return num / len(self)
#     @property
#     def std(self):
#         """总体标准差"""
#         return math.sqrt(self.variance)
#     @property
#     def median(self):
#         """中位数"""
#         sorted_list = sorted(self)
#         if len(self) % 2:
#             return sorted_list[len(self) // 2]
#         return (sorted_list[len(self) // 2] + sorted_list[len(self) // 2 - 1]) / 2

b = []
a = [[1,2,3],[4,5,6],[7,8,9]]
for i in range(len(a[0])):
    c = []
    for j in a:
        c.append(j[i])
    b.append(c)
print(b)


















